﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.XtraEditors;
using System.Windows.Forms;
using System.Drawing;

namespace UniMana.Utils.Helper
{
    public static class ControlUtils
    {

        /// <summary>
        /// Lấy EditValue của LookUpEdit.
        /// </summary>
        /// <param name="lue">Tên LookUpEdit Control</param>
        /// <returns>
        /// Nếu EditValue !=null thì trả về giá trị của EditValue.
        /// Ngược lại trả về -1.
        /// </returns>
        public static int GetIntValue(this LookUpEdit lue)
        {
            try
            {
                if (lue.EditValue == null)
                    return -1;
                else
                    return int.Parse(lue.EditValue.ToString());
            }
            catch { return -1; }
        }

        /// <summary>
        /// Lấy EditValue của GridLookUpEdit
        /// </summary>
        /// <param name="glu">Tên </param>
        /// <returns>GridLookUpEdit
        /// Nếu EditValue != null thì trả về giá trị của EditValue.
        /// Ngược lại trả về -1.
        /// </returns>
        public static int GetIntValue(this GridLookUpEdit glu)
        {
            try
            {
                if (glu.EditValue == null)
                    return -1;
                else
                    return int.Parse(glu.EditValue.ToString());
            }
            catch { return -1; }
        }

        public static Image ResizeImage(string filePath, int width = 240, int height = 320)
        {
            if (filePath != string.Empty)
            {
                Image img = Image.FromFile(filePath);
                img = img.GetThumbnailImage(width, height, null, new System.IntPtr());
                return img;
            }
            return null;
        }

        /// <summary>
        /// An
        /// </summary>
        /// <param name="lue"></param>
        /// <returns></returns>
        public static int ConvertValueToInt(object lue)
        {
            try
            {
                if (lue != null)
                {
                    return int.Parse(lue.ToString());
                }
                else
                {
                    return 0;
                }
            }
            catch
            {
                return -1;
            }
        }

        /// <summary>
        /// Hiển thị hộp thoại xác nhận
        /// </summary>
        /// <param name="frm">Form cha, nơi hộp thoại sẽ xuất hiện</param>
        /// <param name="caption">Tiêu đề của hộp thoại</param>
        /// <param name="text">Nội dung của hộp thoại</param>
        /// <returns>DialogResult.Yes hoặc DialogResult.No</returns>
        public static DialogResult ShowConfirm(this XtraForm frm, string caption = "Xác nhận", string text = "Bạn có muốn xóa mẫu tin này?")
        {
            return XtraMessageBox.Show(text, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Information);
        }
    }
}
